import axios from "axios";
import { getToken } from "@/utils/auth";
import { startLoading, endLoading } from "./loading";

// 创建axios实例
const service = axios.create({
  // `baseURL` 将自动加在 `url` 前面，除非 `url` 是一个绝对 URL。
  // 它可以通过设置一个 `baseURL` 便于为 axios 实例的方法传递相对 URL
  baseURL: __webpack_public_path__,
  restful: {},
  timeout: 6000000000, // 请求超时时间
});

// request拦截器
service.interceptors.request.use(
  (config) => {
    // console.log("config", config);
    // config.isLoading = config.isLoading === undefined ? true : false;
    if (config.isLoading) {
      // 请求显示loading 效果
      startLoading();
    }
    // 在发送请求之前做些什么（可以在这里给头部添加token）
    config.headers["Authorization"] = getToken(); // 让每个请求携带自定义
    config.headers["Content-Type"] = "application/json;charset=utf-8";
    /* upload file*/
    if (config.isUploadFile) {
      config.headers["Content-Type"] = "multipart/form-data";
    }
    if (config.isDownLoadFile) {
      config.responseType = "blob";
    }
    return config;
  },
  (error) => {
    // 对请求错误做些什么
    Promise.reject(error);
  }
);

export { service };
